package com.ruoyi.lvlian.service;

import java.util.List;

import com.ruoyi.lvlian.domain.DriverInfo;
import com.ruoyi.lvlian.domain.DriverVehicleRef;
import com.ruoyi.lvlian.dto.DriverInfoDto;
import com.ruoyi.lvlian.vo.DriverInfoVo;
import org.springframework.web.multipart.MultipartFile;

/**
 * 司机信息Service接口
 *
 * @author liyuxi
 * @date 2024-06-06
 */
public interface IDriverInfoService {
    /**
     * 查询司机信息
     *
     * @param id 司机信息主键
     * @return 司机信息
     */
    public DriverInfoVo selectDriverInfoById(String id);

    /**
     * 查询司机信息列表
     *
     * @param driverInfo 司机信息
     * @return 司机信息集合
     */
    public List<DriverInfoVo> selectDriverInfoList(DriverInfoDto driverInfo);

    /**
     * 新增司机信息
     *
     * @param driverInfo 司机信息
     * @return 结果
     */
    public int insertDriverInfo(DriverInfo driverInfo);

    /**
     * 修改司机信息
     *
     * @param driverInfo 司机信息
     * @return 结果
     */
    public int updateDriverInfo(DriverInfo driverInfo);

    /**
     * 批量删除司机信息
     *
     * @param ids 需要删除的司机信息主键集合
     * @return 结果
     */
    public int deleteDriverInfoByIds(String[] ids);

    /**
     * 删除司机信息信息
     *
     * @param id 司机信息主键
     * @return 结果
     */
    public int deleteDriverInfoById(String id);

    DriverInfoVo getDriverByPhone(String phone ,String dataSource );

    DriverInfoVo getDriverBylicenseOrIdcard(String licenseNo);

    List<DriverInfo> importInfo(MultipartFile file, String sheetName, int row) throws Exception;

    int bachSave(List<DriverInfo> dtoList);

    int flushDriverVehicleRef();

    DriverInfoVo getDriverByPlateNo(String plateNo);

    List<DriverInfoVo> wechatList(DriverInfoDto driverInfo);

    int updateDriver(DriverInfo info);

    int bind(DriverVehicleRef info);

    int deleteBind( DriverVehicleRef info);

    int approve(String[] ids, String dataStatus);

}
